const Subscription = require('egg').Subscription
const dayjs = require('dayjs')

class DayTrack extends Subscription {
  // 通过 schedule 属性来设置定时任务的执行间隔等配置
  static get schedule() {
    return {
      env: ['pord'],
      cron: '0 2 * * *', // 每天凌晨2点自动执行
      type: 'worker', // 某个Worker执行一次，Egg随机选择一个Worker执行
    }
  }

  // subscribe 是真正定时任务执行时被运行的函数
  async subscribe() {
    const { env } = this.app
    const { ctx } = this

    console.log('[subscribe day]', dayjs().format('YYYY-MM-DD HH:mm:ss'))

    await this.service.task.dayTask(dayjs().format('YYYY-MM-DD'))
  }
}

module.exports = DayTrack
